例: OPC UA PubSub SL 図書館
製品:CODESYS OPC UA PubSub SL
ザル OPC UA PubSub SL Example.project
例では以下の使用方法を示しています。 OPC UA PubSub SL OPC UA Foundation で定義されている Pub/Sub プロトコルを介してメッセージを交換するためのライブラリ。
パッケージには 2 つ目の例も含まれています。 PubSubDataSet.project
。の使用方法を示しています OPC UA PubSub SL さまざまなデータセットを提供して GVL インスタンスに接続するためのライブラリ。
説明
クライアント/サーバー通信に加えて、OPC UA Pub/Sub プロトコルを介した通信は、OPC UA Foundation の規則に従ってネットワークの加入者間でデータを交換する追加機能も提供します。
データの構造 (DataSet
)は自由に定義でき、送信者と受信者の間で事前に合意されます。これにより、追加の (メタ) データを転送する必要がなくなります。データは、 OPC UA PubSub SL UADP に定義されているルールに従って、UDP/IP 経由でライブラリを作成します。
パブリッシャーは、そのデータを不特定の数のサブスクライバーに公開します。その結果、送信者と受信者はお互いを知りません。そのため、受信者の数が送信者に影響を与えることはありません。メッセージが受信者に届いたかどうかについての送信者への応答は、プロトコルの性質上、このプロトコルを介して送信することはできません。必要に応じて、そのような応答はアプリケーション固有の方法で管理する必要があります。
データは、OPC UA Foundation の規則に従ってバイナリ形式で転送されます。の OPC UA PubSub SL
ライブラリは、IEC データ型から対応する OPC UA データ型への変換、またはその逆の変換を処理します。
実装は次のプロファイルに従います。
Publisher: PubSub Publisher UADP Periodic Fixed Settings
Subscriber: PubSub Subscriber UADP Periodic Fixed Settings
メッセージの長さは 1,500 バイト (MTU) に制限されています (チャンク ネットワーク メッセージはサポートされていません)。時間に敏感なネットワークのルールがまだ利用できない限り、ハード リアルタイム条件に準拠することはできません。ただし、実装は、 OPC UA PubSub SL
ライブラリはジッターを可能な限り低く抑えようとします。
ライブラリには次の機能ブロックが含まれています。
DataSet
:を定義します
DataSet
メッセージConfiguration
:接続やグループなどの共有リソースを管理します
RootDiagnostics
:上位の診断データを通知します
Connection
:パブリッシャーおよびサブスクライバーへの接続を管理します
ConnectionDiagnostics
:接続に関する診断データを通知します (
Connection
)ReaderGroup
:管理します
Reader
機能ブロック (からの NetworkMessage の作成)DataSet
メッセージ)ReaderGroupDiagnostics
:に関する診断データを通知します。
ReaderGroup
Reader
:を管理します
DataSet
ファンクションブロック(サブスクライバ)ReaderDiagnostics
:に関する診断データを通知します。
Reader
ファンクションブロックWriterGroup
:管理します
Writer
機能ブロック (からの NetworkMessage の作成)DataSet
メッセージ)WriterGroupDiagnostics
:に関する診断データを通知します。
WriterGroup
Writer
:を管理します
DataSet
機能ブロック (出版社)WriterDiagnostics
:に関する診断データを通知します。
Writer
ファンクションブロック
![]() |
サポートされている機能
OPC 10000-14: OPC Unified Architecture Part 14: PubSub Release 1.04 に準拠したメッセージのパブリッシュ/サブスクライブ
NetworkMessage の最大サイズ: 1,500 バイト
現在のパケット サイズとペイロードは、それぞれの ReaderGroup/WriterGroup の設定によって設定できます。
DataSet
機能ブロック。それぞれのバックグラウンドタスクによるサポート
Connection
ファンクションブロック次のプロファイルがサポートされています。
Publisher: PubSub Publisher UADP Periodic Fixed Settings
Subscriber: PubSub Subscriber UADP Periodic Fixed Settings
追加情報
の Device_1
アプリケーションは、 NetworkMessage
。
の Device_2
このアプリケーションは、含まれる機能ブロックを使用してメッセージを送信する方法を示します。
ハードウェア
2 つ必要です CODESYS UDP マルチキャストをサポートするネットワーク上で接続されている PLC。
プロジェクトで、更新してデバイス構成をデバイスに適応させます。
Device_1
とDevice_2
使用されているハードウェアに。
プロジェクト内のカスタマイズ
IPアドレスを設定します。
GlobalIP
設定したハードウェアへの GVL。この GVL は次の場所にあります。 POU エリア。マルチキャスト アドレスをネットワーク内の空きアドレスに設定します。
注: プライベート ネットワークに接続していない場合は、ネットワーク管理者にフリー アドレスの割り当てを依頼してください。
ポートを設定します。デフォルトのポート 4840 は、OPC UA PubSub に推奨されるポートです。
両方のコントローラーにログインし、アプリケーションを起動します。
送信側と受信側の両方を開始します。
Device_2: PLC_PRG.xEnable := TRUE
Device_1: Communication_PRG.xEnable := TRUE
受信側では、サインの値がどのように変化するかを確認できるはずです。送信側で他の値を手動で変更し、受信側で変更を確認できます。
変数を追加します DataSet
すでに送信されています。
拡張する
SensorDataSet._aIndex
1回のエントリーで。任意のデータ型を選択します。の
SensorDataSet.Init
のバージョンを調整します。DataSet
日付エントリを更新することによって。の中に
PLC_PRG
送信側のプログラムで、選択したデータ型の変数を作成します。値を割り当てるtxSensorDataSet.PrepareValues
変数に。の
rxSensorDataSet.PrepareValues
、受信側でこの手順を繰り返します。ここでもあらかじめ同じ型の変数を新規作成しておきます。新しいダウンロードを実行します。
新しい変数も送信する必要があります。
![]() |
システム要件と制限事項
プログラミングシステム | CODESYS Development System (バージョン 3.5.17.0 またはそれ以降) |
ランタイムシステム | CODESYS Control Win (バージョン 3.5.14.0) 注記それぞれのランタイム システムの機能に応じて、メッセージはユニキャスト、マルチキャスト、またはブロードキャスト経由で送信できます。 |
サポートされているプラットフォーム/デバイス | ヒント使用 |
制限 |
|
アドオンコンポーネント | CODESYS OPC UA PubSub SL |
注記
ダウンロード プロジェクト